データ結合を使わずに Challenge #41: Analytics PayPeriodCalc に挑戦 – Alteryx Weekly Challenge

データ結合を使わずに Challenge #41: Analytics PayPeriodCalc に挑戦 – Alteryx Weekly Challenge

Clock Icon2019.03.29

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは。Alteryxサポートエンジニアとして勉強中のスズです。

Alteryx Communityで公開されているWeekly Challengeに挑戦するシリーズ。

今回は前回挑戦したChallenge #41のAnalytics PayPeriodCalcに再度挑戦します。前回挑戦したエントリはこちら。

前回のエントリでは、データを分けてから処理を行い、最後にデータの結合を行っていました。今回はデータの結合を行わないという条件付きで挑戦します。

動作環境

当エントリの執筆には、以下の環境を利用しています。

  • Windows 10 Pro
  • Alteryx Designer 2019.1.4.57073 英語版

Challenge #41: Analytics PayPeriodCalc

お題

前回のエントリと重複しますが、改めてお題のご紹介です。

Input側のデータはこちら。1ヶ月を2回に分けて給料を支払うという想定で、P1の開始日と終了日、P2の開始日と終了日が用意されています。

Output側のデータはこちら。年月別に、P1とP2の日数が出力されています。日数は土曜日と日曜日を除いた平日の日数になっています。

解答のワークフロー全体図

今回作成するワークフローはこちら。データを横持ちに変換して処理を行っていきます。

日付の変換

Formulaツールを使用して、「Month」列をV_WString型で作成します。

「April, 2013」というような形式で出力するため、以下の設定をしています。

DateTimeFormat(DateTimeParse([P1 Start],"%m/%d/%Y"),"%B, %Y")

Transposeツールを使用して、「Month」列をキーにデータを横持ちに変換します。

この時点でデータは以下のとおりになっています。

Formulaツールを使用して、「Date」列をDate型で新しく作成します。

「Date」列には「Value」列の日付を変換して出力します。

DateTimeParse([Value],"%m/%d/%Y")

日数の出力

次は日数を出力していきます。Multi-Row Formulaツールを使って新しく「Days」列を作成し、「Name」列の「Start」から「End」の日数を出力します。

設定は以下とおりです。

IIF(Contains([Name], "Start"), DateTimeDiff([Row+1:Date], [Date], "days"), 0)
  • 「Name」列に「Start」が含まれる場合は「Date」列の日付と1つ下の「Date」列の日付との日数を出力
  • それ以外の場合は0を出力

Generate Rowツールを使って、「Days」列の日数分、行を作成します。「RowCount」列はDate型で作成し、日付を出力します。

Formulaツールを使用して、「RowCount」列に出力した日付の曜日を出力します。

日付の出力には以下の設定をしています。

DateTimeFormat([RowCount],"%A")

Filterツールを使用して、土曜日と日曜日、「Name」列に「End」が含まれているデータを取り除きます。

Custom filterには以下のとおり設定しています。

[Day of the week] != "Saturday" and [Day of the week] != "Sunday" and !Contains([Name], "End")

Summarizeツールを使用して、日数を出力します。「Month」列と「Name」列でグループ化し、データの数を出力します。

表示の調整

Cross Tabツールを使用して、データの持ち方を変えます。

  • Group Data by these Values: 「Month」列
  • New Column Headers: 「Name」列
  • Values for New Columns: 「Count」列

Selectツールを使用して列の名前を修正します。

結果を確認して完成です。

最後に

今回はChallenge #41: Analytics PayPeriodCalcにデータの結合を使わずに挑戦しました。

サンプルワークフローのご案内

クラスメソッドでご契約のユーザー様向けに、当ブログでご紹介したワークフローを専用ポータルにて公開しております。当エントリでご紹介したワークフローも公開予定ですので、ご参考にしていただきますと幸いです。

Alteryxの導入なら、クラスメソッドにおまかせください

日本初のAlteryxビジネスパートナーであるクラスメソッドが、Alteryxの導入から活用方法までサポートします。14日間の無料トライアルも実施中ですので、お気軽にご相談ください。

alteryx_960x400

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.